home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_13_1986_Transactor_Publishing.d64
/
save symass syms
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
90 lines
100 sys700
110 ; < <<save symass symbols>> >
120 ; 1.3
130 ; robert huehn mar 1986
140 *=820 ; 820 to 1021
150 ;
160 memsiz =$37 ;top of memory
170 symptr =$52 ;pointer to table
180 symend =$57 ;bottom of table
190 line =$39 ;line number
200 clr =$a663 ;do clr
210 eval =$ad9e ;evaluate expression
220 chkstr =$b6a3 ;check for string
230 setnam =$ffbd ;set file name
240 setlfs =$ffba ;set logical file
250 open =$ffc0 ;open file
260 chkout =$ffc9 ;output channel
270 chrout =$ffd2 ;print
280 clrchn =$ffcc ;clear channels
290 close =$ffc3 ;close
300 ready =$a474 ;ready
310 ;
320 lda memsiz:sta symptr ;protect
330 lda memsiz+1:sta symptr+1 ;symbol
340 lda symend:ldx symend+1 ;table from
350 jsr lower
360 jsr eval ;basic's evaluate
370 jsr chkstr ;get length and pointer
380 jsr setnam ;for kernal routine
390 lda #8 ;file 8, dev 8
400 tax
410 ldy #1 ;sec addr 1
420 jsr setlfs
430 jsr open
440 ldx #8
450 jsr chkout
460 lda #1:jsr dout ;fake start address
470 lda #0:sta line:sta line+1
480 lda symptr:ldx symptr+1
490 jsr lower ;move memsiz back
500 sss1 lda symptr ;check for end of
510 sec ;symbol table
520 sbc #10
530 sta symptr
540 bcs sss2
550 dec symptr+1
560 sss2 cmp symend
570 lda symptr+1
580 sbc symend+1
590 bcc done
600 lda #1:jsr dout
610 inc line ;save fake link and new
620 bne sss3 ;line number
630 inc line+1
640 sss3 lda line:jsr chrout
650 lda line+1:jsr chrout
660 ldy #0
670 sss4 lda (symptr),y
680 beq sss5
690 jsr chrout ;save symbol name
700 iny:cpy #8
710 bne sss4
720 sss5 lda #" ":jsr chrout
730 lda #$b2:jsr chrout ;save ' =$'
740 lda #"$":jsr chrout ;and hex value
750 ldy #9:lda (symptr),y:beq sss6:jsr hex
760 sss6 dey:lda (symptr),y:jsr hex
770 lda #0:jsr chrout
780 jmp sss1
790 hex =* ;print hex number
800 pha
810 lsr:lsr:lsr:lsr
820 jsr he1
830 pla:and #$0f
840 he1 cmp #10
850 bcc he2
860 adc #6
870 he2 adc #$30
880 jmp chrout
890 lower =*
900 sta memsiz:stx memsiz+1
910 jmp clr
920 dout =*
930 jsr chrout:jmp chrout
940 done lda #0:jsr dout
950 lda #8 ;finish
960 jsr close
970 jsr clrchn
980 jmp ready